@use 'sass:color';
@use '../config';
@use '../config/color/brand';

.sl-c-callout {
  margin: var(--sl-block-margin--callout, var(--sl-gutter--sesqui)) 0;
  padding: var(--sl-block-padding--callout, var(--sl-gutter--sesqui))
    var(--sl-gutter);
  background: var(
    --sl-background--callout,
    color.adjust(brand.$sl-color--pale-sky, $lightness: 60%)
  );
  border-color: var(--sl-border-color--callout);
  border-style: var(--sl-border-style--callout, solid);
  border-width: var(--sl-border-width--callout, 0);
  border-radius: var(--sl-border-radius--small);

  &--warning {
    --sl-background--callout: var(--sl-color--warning-lighter);
    --sl-border-color--callout: var(--sl-color--warning-light);
    --sl-border-width--callout: var(--sl-border--small);
  }

  &--fun-fact {
    --sl-background--callout: var(--sl-color--info-lighter);
    --sl-border-color--callout: var(--sl-color--info-light);
    --sl-border-width--callout: var(--sl-border--small);
  }

  &--function {
    padding-bottom: var(--sl-gutter--quarter);
    padding-top: 0;

    .signature {
      // Make sure permalinks are visible.
      overflow: visible;
      margin-left: var(--sl-gutter--negative);
      margin-right: var(--sl-gutter--negative);
    }
  }

  &--impl-status {
    font-size: var(--sl-status-text-size);
    margin-top: var(--sl-gutter--negative);
    padding: var(--sl-gutter--minus);

    .sl-c-callout & {
      --sl-background--callout: #{color.adjust(
          brand.$sl-color--pale-sky,
          $lightness: 53%
        )};
    }
  }

  > *:first-child {
    margin-top: 0;
  }

  > *:last-child {
    margin-bottom: 0;
  }
}

@include config.sl-breakpoint--large {
  .sl-c-callout--function {
    padding-left: 2.25rem;

    .signature {
      margin-left: -2.25rem;
      margin-right: 0;
    }
  }
}
